Networks have not traditionally been programmable entities. Although some programming frameworks may be used to configure a limited aspect of a network, the intelligence has been in the framework, and not the network. In this regard, any programmability exists in the framework rather than in each switch or router of the network. As networks become more complex and the need for the networks to respond to external changes in near real-time becomes increasingly important, approaches of configuring networks at individual devices may become impractical.